DBEdit a Post

Otázka od: Martin Pisarik

3. 5. 2004 12:46

Ahoj *,

mam zajimavy problem. V aplikaci mam spoustu DBEditu a vsechny funguji tak
jak maji, krome dvou. Ty dva edity nepropisuji hodnoty do databaze,
zobrazuji je spravne, ale nepropisuji. Oba pracuji s tabulkou, ktera ma jen
jeden zaznam.
Problem jsem vyresil tak, ze v OnExit tech zminenych editu zavolam toto:
if (D->Tbl->State==dsEdit) {
 D->Tbl->Post();
}
Funguje to, ale mam z toho divny pocit, uz proto, ze TEdit vyuzivam hodne a
ted mam strach, ze to treba nebude stoprocentne fungovat. Nevite nekdo cim
by to mohlo byt? Dataset a Edity mam nastaveny stejne jako ty ostatni co
funguji, Tabulka se taky jevi OK.

ADO, MySQL, BCB6

Dik za rady.





Odpovedá: Jan Rizek

3. 5. 2004 20:00

a zapisuje se do nich pouze uzivatel nebo je plnite programove ?

pokud je plnite programove musite to delat takto:

  with DBEdit1.DataSource.DataSet do
    if not (State in [dsEdit, dsInsert]) then Edit;
    FieldByName('VASE_POLICKO').AsInteger:= 15;
    {popripade}
    Post; {Apply} {Commit}
  end;

----
 pokud zapisujete do DBEdt1.text je to spatne..

----- Original Message -----
From: "Martin Pisarik" <martin.pisarik@seznam.cz>
To: <delphi-l@clexpert.cz>
Sent: Monday, May 03, 2004 1:24 PM
Subject: DBEdit a Post


> Ahoj *,
>
> mam zajimavy problem. V aplikaci mam spoustu DBEditu a vsechny funguji tak
> jak maji, krome dvou. Ty dva edity nepropisuji hodnoty do databaze,
> zobrazuji je spravne, ale nepropisuji. Oba pracuji s tabulkou, ktera ma
jen
> jeden zaznam.
> Problem jsem vyresil tak, ze v OnExit tech zminenych editu zavolam toto:
> if (D->Tbl->State==dsEdit) {
> D->Tbl->Post();
> }
> Funguje to, ale mam z toho divny pocit, uz proto, ze TEdit vyuzivam hodne
a
> ted mam strach, ze to treba nebude stoprocentne fungovat. Nevite nekdo cim
> by to mohlo byt? Dataset a Edity mam nastaveny stejne jako ty ostatni co
> funguji, Tabulka se taky jevi OK.
>
> ADO, MySQL, BCB6
>
> Dik za rady.
>
>
>
>
>
>
>
>
>


Odpovedá: Martin Pisarik

3. 5. 2004 20:00

Ne prave ze do nich zapisuje uzivatel, ale z nejakeho zahadneho duvodu to
nepropisuje do databaze. Musim to programove postnout v onExit eventu a to
je divny. Ostatni DBEdity mi funguji dobre, jen tyhle dva ne. Je tam urcite
nejaka blba chyba, jen ji nemuzu najit...

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On
Behalf Of Jan Rizek
Sent: Monday, May 03, 2004 4:51 PM
To: delphi-l@clexpert.cz
Subject: Re: DBEdit a Post


a zapisuje se do nich pouze uzivatel nebo je plnite programove ?

pokud je plnite programove musite to delat takto:

  with DBEdit1.DataSource.DataSet do
    if not (State in [dsEdit, dsInsert]) then Edit;
    FieldByName('VASE_POLICKO').AsInteger:= 15;
    {popripade}
    Post; {Apply} {Commit}
  end;

----
 pokud zapisujete do DBEdt1.text je to spatne..

----- Original Message -----
From: "Martin Pisarik" <martin.pisarik@seznam.cz>
To: <delphi-l@clexpert.cz>
Sent: Monday, May 03, 2004 1:24 PM
Subject: DBEdit a Post


> Ahoj *,
>
> mam zajimavy problem. V aplikaci mam spoustu DBEditu a vsechny funguji tak
> jak maji, krome dvou. Ty dva edity nepropisuji hodnoty do databaze,
> zobrazuji je spravne, ale nepropisuji. Oba pracuji s tabulkou, ktera ma
jen
> jeden zaznam.
> Problem jsem vyresil tak, ze v OnExit tech zminenych editu zavolam toto:
> if (D->Tbl->State==dsEdit) {
> D->Tbl->Post();
> }
> Funguje to, ale mam z toho divny pocit, uz proto, ze TEdit vyuzivam hodne
a
> ted mam strach, ze to treba nebude stoprocentne fungovat. Nevite nekdo cim
> by to mohlo byt? Dataset a Edity mam nastaveny stejne jako ty ostatni co
> funguji, Tabulka se taky jevi OK.
>
> ADO, MySQL, BCB6
>
> Dik za rady.
>
>
>
>
>
>
>
>
>




Odpovedá: Karel Rys

4. 5. 2004 6:42

Cim uzivatel ukoncuje to dialogove okno? Kdyz jsem treba v udalosti OnClick
tlacitka OK chtel
testovat hodnoty poli, stavalo se mi (D5), ze jsem nejprve rucne musel dat
OK.SetFocus a teprve
pote testy provest. V D5 (a mozna i dalsich) je podle me chyba, ze kdyz
uzivatel na OK "klikne"
stiskem Alt+O, policko, ve kterem byl predtim Focus, nedostane udalost
OnExit...

Karel Rys


Martin Pisarik dne 3 May 2004 v 17:59:

> Ne prave ze do nich zapisuje uzivatel, ale z nejakeho zahadneho duvodu
> to nepropisuje do databaze. Musim to programove postnout v onExit
> eventu a to je divny. Ostatni DBEdity mi funguji dobre, jen tyhle dva
> ne. Je tam urcite nejaka blba chyba, jen ji nemuzu najit...


Odpovedá: Martin Pisarik

4. 5. 2004 8:05

Neni to dialogove okno, mam to na MainFormu. Problem je, ze i kdyz se z tech
editboxu premistim, treba mysi nebo tabulatorem, onExit se zavola, ale do DB
tabulky to nic nepropise! Musim v onExit udelat Tabulka->Post() a pak je to
dobry. Mam na formu spoustu dbeditu a vsechno funguje dobre krome tech dvou,
ktere pracuji s jednou tabuklou. Napada me, ze mozna vadi, ze ta tabulka ma
jediny zaznam. Ty edity zobrazuji data koreknte, jen je nemeni. Tabulka i
edity jsou stejne nastavene jako ostatni tabulky a edity u kterych to
funguje, tak nevim...

-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On
Behalf Of Karel Rys
Sent: Tuesday, May 04, 2004 7:32 AM
To: delphi-l@clexpert.cz
Subject: Re: DBEdit a Post


Cim uzivatel ukoncuje to dialogove okno? Kdyz jsem treba v udalosti OnClick
tlacitka OK chtel
testovat hodnoty poli, stavalo se mi (D5), ze jsem nejprve rucne musel dat
OK.SetFocus a teprve
pote testy provest. V D5 (a mozna i dalsich) je podle me chyba, ze kdyz
uzivatel na OK "klikne"
stiskem Alt+O, policko, ve kterem byl predtim Focus, nedostane udalost
OnExit...

Karel Rys


Martin Pisarik dne 3 May 2004 v 17:59:

> Ne prave ze do nich zapisuje uzivatel, ale z nejakeho zahadneho duvodu
> to nepropisuje do databaze. Musim to programove postnout v onExit
> eventu a to je divny. Ostatni DBEdity mi funguji dobre, jen tyhle dva
> ne. Je tam urcite nejaka blba chyba, jen ji nemuzu najit...




Odpovedá: Ludek Paral

4. 5. 2004 12:16

Ahoj,

mel jsem podobny problem a musel jsem jej resit tak, ze jsem nepracoval s
datasetem (ten obdrzi info o nove hodnote pozdeji az po validaci), ale primo
s hodnotou ulozenou v edit boxu. Jinak doporuceni zde na konferenci je :
nepouzivat editacni boxy napojene na dataset, ale to je na dyl.

Ludek